Skip to content
/ Banli Public

Banli-高危资产识别和高危漏洞扫描

Notifications You must be signed in to change notification settings

Goqi/Banli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

58 Commits
 
 
 
 

Repository files navigation

Banli-高危资产识别和高危漏洞扫描

Banli

Banli是一款极其简单好用的高危资产识别和高危漏洞扫描利用工具。本项目也是自己深入学习理解Go语言后陆续发布的项目之一。本项目仅限用于安全研究人员在授权的情况下使用,请遵守网络安全法,若因本工具产生任何问题,后果请自负,与作者无关! 程序代码中绝不会添加任何形式的后门,运行程序一般情况不会对目标系统产生危害,请各位师傅放心使用!本项目会持续更新,直到海枯石烂。 作者:0e0w

本项目创建于2021年10月16日,最近一次更新时间为2023年4月10日。

01-Banli基本介绍

我们养了一只比熊犬,她的名字叫板栗。她时而很活泼,时而又很安静,像极了这个Banli。

  • 因为活泼,所以她可以高效快速的进行高危资产识别和高危漏洞扫描。
  • 因为安静,所以她的动静很小尽可能的不被流量监测等安全设备发现。

Banli可以对内外网的系统进行高危资产识别和高危漏洞扫描。方便渗透测试和红队评估人员进行快速识别高危资产,快速利用高危漏洞,从而最终拿到系统权限!

02-Banli设计思路

Banli要解决的问题是如何快速识别企业的高危资产,如何快速扫描企业的高危漏洞。包括Web资产、中间件资产、框架资产、安全设备等高危资产的识别,包括Web漏洞、命令执行漏洞、反序列化等高危漏洞的扫描。项目设计时考虑到了尽可能的避免触发安全告警。设计思路包括多利用404页面,少用特定的后台等敏感页面等。具体的设计实现方式后续会公开!

程序文件说明:

  • Banli.ini 全局参数设置
  • ips.txt 单个存活的ip
  • ipc.txt 内网存活的IPC段
  • ipb.txt 内网存活的IPB段
  • urls.txt 单个Web资产
  • user.txt 爆破时的用户名字典
  • pass.txt爆破时的密码字典
  • Banlilogs.txt 程序运行日志

03-Banli使用说明

程序设计时遵循简单原则。本项目没有用户可控参数,所有参数用户都无法自定义。必要修改的参数可以通过修改当前目录下配置文件Banli.ini进行设置。扫描结果可自动打包发送到邮箱!

1、资产识别模块都是对当前路径的urls.txt文件进行扫描,支持多种URL格式,一行一个,结尾不能有/号,不能存在无效的URL格式!否则会影响程序的识别效果,或直接导致程序无法运行!

2、漏洞扫描模块都是对资产识别之后自动生成的文件进行扫描。 例如:通过命令Banli.exe is seeyon扫描Seeyon资产,如果存在Seeyon资产,则自动创建isSeeyon.txt文件。之后可以使用Banli.exe hack seeyon对isSeeyon.txt文件内的资产进行Seeyon漏洞扫描。减少无用功,拒绝无效努力!

3、信息收集模块支持网站Title扫描。 后期支持端口扫描和资产发现功能!

4、密码爆破模块目前支持大多数的可爆破服务。

5、被动扫描加爬虫扫描是一款扫描器的最后追求!

一、资产识别

  • 说明:设计初衷是对单个高危资产进行扫描,一次性扫描多个资产效率较低。
  • 支持识别的资产应用:activemq、ax2、baota、cas、confluence、coremail、dcuz、druid、dubbo、elasticsearch、exchange、eyoumail、finereport、flink、gerapy、gitlab、gogs、hadoop、harbor、hongfanoa、jboss、jeecms、jellyfin、jenkins、jinheroa、jira、jumpserver、jupyter、kibana、kingdee、kylin、landrayoa、leagsoft、liferay、metabase、mobileiron、nacos、ofbiz、phpmyadmin、rabbitmq、saltstack、seeyon、shiro、skywalking、solr、sonarqube、spark、springboot、struts、swagger、thinkphp、tomcat、tongdaoa、vesystem、vmware、wanhuoa、weaveroa、weblogic、websphere、yapi、yonyou、zabbix、zentao。等
  • 资产支持列表:Banli.exe is
  • 所有资产扫描:Banli.exe is all
  • OA 资产扫描:Banli.exe is oa
  • 内网资产扫描:Banli.exe is nei
  • 外网资产扫描:Banli.exe is wai
  • 单个高危资产扫描:Banli.exe is log4j
    • 使用Banli.exe is log4j扫描那些组件资产用到了log4j。运行结束后存在的资产会保存到对应的文件中。

二、漏洞扫描

漏洞扫描模块将是Banli的重点,目前支持的资产较少。后期将重点更新漏洞扫描模块!

  • 支持扫描的框架漏洞:seeyon、druid、weblogic、log4j、grafana、apisix、spring。

  • 所有资产全部漏洞扫描:Banli.exe hack god 该功能待公开

  • 单个漏洞全部资产扫描:Banli.exe hack seeyon

  • 支持漏洞 :Banli.exe hack log4j

    • 将Banli.ini文件中的dnslog值替换成自己的地址。扫描完成后在自己的dnslog上面看记录。

    • Banli.exe hack log4j

      扫描特定资产的Log4j2漏洞。目前支持:Druid、Flink、JSPWiki、OFBiz、SkyWalking、Solr、Struts2、CAS、MonbileIro User Portal、Seeyon、Unifi Network、VMware HCX、VMware Horizon、VMware NSX、VMware vCenter、VMware vRealize、VMware Workspace One、Zipkin

    • Banli.exe hack log4j fuzz

      测试urls.txt文件中HTTP头是否存在漏洞。此模块将会发送大量的请求包。

    • Banli.exe hack log4j scan d:/

      扫描本地目录的代码中是否存在危险的log4j框架。结果保存到output文件夹内。

  • 支持漏洞 :Banli.exe hack thinkphp

    • 目前支持26个Thinkphp的不同版本的漏洞。
  • 支持漏洞 :Banli.exe hack weblogic

三、信息收集

  • 获取资产title :Banli.exe get title

  • 程序自动对urls.txt内的资产进行title扫描。

  • 获取资产js文件 :Banli.exe get js

  • 程序自动对urls.txt内的资产进行js文件的扫描。

  • 获取存活网段 :Banli.exe get ipc 默认tcp扫描

  • 程序自动获取内网中存活的网段。一行一个存活的C段,保存到ipc.txt

    • Banli.exe get ipc tcp
    • Banli.exe get ipc icmp
    • Banli.exe get ipc ping
    • Banli.exe get ipc udp
    • Banli.exe get ipc arp
  • 获取存活IP :Banli.exe get ips

  • 获取内网中存活的单个IP地址。将IP网段保存到ipc.txt中。运行,在ips.txt中得到存活的IP地址。

  • 获取Web资产 :Banli.exe get urls

  • 程序自动对ips.txt内的ip资产进行Web资产探测。支持IP段。

  • Web路径扫描 :Banli.exe get path 待实现。后续通过路婧完整实现。

    • Banli.exe get path

四、密码爆破

  • Banli.exe is crack
    • 扫描IP可以进行爆破的高危端口。请将ip资产保存到ips.txt,一行一个。
  • Banli.exe crack
    • 对isCrack.txt内的资产进行默认端口密码爆破。例:127.0.0.2:22。目前支持:FTP、SSH、MsSQL、MySQL、PostgreSQL、MongoDB。用户名和密码字典为crackuser.txt和crackpass.txt

五、被动扫描

  • 被动扫描的设计思路是拦截请求,修改请求,重发数据。支持HTTPS扫描,程序第一次运行后自动生成证书,需要在浏览器中设置代理并导入证书。默认代理IP端口为127.0.0.1:8715
  • Banli.exe pass log4j
    • 勉强能用,速度奇慢。 此功能暂时关闭!

六、爬虫扫描

  • 目前不支持。

04-Banli更新记录

  • 2023年4月10日:1.程序本级目录必须存在0e0w.js文件,否则无法运行。2.新增Banli.exe get ips 快速获取IP段中存活的IP地址。3.优化部分垃圾代码。
  • 2022年8月15日:1.HTTP请求全部换成了fasthttp。目前来看,比原生http效率确实提升不少。2.新增get js模块。可以识别urls.txt资产中的js文件。参考了URLFinder,感谢pingc0y。3.更新log4j漏洞扫描模块,支持1000多个HTTP头的fuzz,实际测试效果还不错。4.新增socks5和http代理模式。在Banli.ini中配置。
  • 2022年7月15日:1.新增邮件发送功能,程序每次执行后都将output压缩并发送到邮件,邮箱信息在Banli.ini里面配置。2.更新内网存活资产网段探测。Banli.exe get ipc。3.新增网站备份文件扫描。Banli.exe get bak。4.新增运行程序时会判断是否存在Bnali.ini,若不存在则自动创建。5.更新了几个OA的漏洞扫描。6.将结果输出保存到output文件夹里。新建input文件夹,里面包含程序的默认执行文件。7.程序执行前自动对urls.txt和ips.txt资产进行去重操作。8.对程序进行了大量的优化更新。
  • 2022年6月15日:1.新增Banli.ini配置文件,可自定义部分参数。感谢@FR33D0M提供的折中思路。2.添加Log4j漏洞的被动扫描。3.新增Banli.exe get urls。可扫描ips.txt内的Web资产。4.新增Confluence CVE-2022-26134及其他俩个CVE漏洞扫描。5.新增MS17010漏洞概念扫描。
  • 2022年5月15日:1.支持vmware 3个漏洞扫描。2.支持solr 4个漏洞扫描。3.支持spring 4个漏洞扫描。4.支持Thinkphp 18个漏洞扫描。5.支持Shiro-550 key识别漏洞扫描,Shiro-550 exp扫描(暂不公开)。6.更新22个组件的log4j漏洞扫描。7.更新优化web识别。8.添加其他的漏洞扫描。9.更新如果执行hack命令时没有对应的资产则自动执行is模块。
  • 2022年4月15日:1.增加高危爆破端口扫描、增加密码爆破功能。2.新增多个资产识别。3.新增18个Log4j2相关组件的漏洞扫描(Banli.exe hack log4j2)。4.程序大量优化,优化识别规则多线程等问题。
  • 2022年4月8日:今天本程序被一些微信群推荐,感谢。优化程序,更新代码逻辑。
  • 2022年2月15日:1.修复默认线程数太高导致内存指针报错的问题,添加用户可自定义线程数,感谢@T-T。 2.支持单个资产的识别,感谢@ᗡD。v0.91版本暂时不对外公开!
  • 2022年1月15日:添加随机UserAgent。添加日志记录。添加APISIX漏洞扫描模块。
  • 2021年12月15日:新增37个资产识别。支持log4j、grafane、weblogic等部分漏洞扫描识别。完善优化程序,去除https证书过期导致无法识别的问题等。发布v0.8版本。
  • 2021年11月15日:支持Seeyon漏洞扫描。添加新的资产识别。优化程序,发布v0.7版本。
  • 2021年10月29日:添加支持新的资产识别,优化程序。发布v0.6版本。
  • 2021年10月20日:添加单个资产的扫描方式。例:Banli.exe is thinkphp
  • 2021年10月19日:支持Title扫描。支持内网资产和外网资产分开扫描。
  • 2021年10月18日:添加新的资产识别,Chestnut更名为Banli。
  • 2021年10月17日:优化程序,支持扫描单个资产列表,加入漏洞扫描功能。
  • 2021年10月16日:项目框架基本完成。

05-Banli未来计划

  • 处理HTTPS请求时存在问题!例如:minio
  • 将工具字典文件等内容融合到程序中,需要的时候解压。
  • 程序日志记录功能不够完善,后续更新!
  • 爆破时若字典文件不存在,则自动创建字典文件。
  • 支持所有漏洞一键扫描。
  • crack模块爆破互联网时指针错误,该bug待更新。
  • 对输出结果进行优化,支持输出到excel文件。
  • 添加代理池自动收集实现匿名扫描。
  • 更新WEB框架!
  • 添加支持代理扫描。支持HTTP代理和socks5代理。
  • 优化不同操作系统下的漏洞验证。
  • 对扫描的结果进行压缩加密保存。
  • 添加敏感路径爆破收集功能。添加资产发现模块。
  • urls.txt去重。内网存活资产发现。
  • 资产识别或漏洞扫描之后将结果发送到指定邮箱。
  • ips.txt支持C段B段模式。
  • 添加高危漏洞被动扫描功能!!!
  • 将结果输出到output文件夹内。
  • ms17010支持IP段扫描。
  • 程序在运行前自动创建Banli.ini文件。

06-感谢参考项目

本项目开发过程中参加了这些项目的代码思路或漏洞详情等!感谢这些作者,感谢开源社区!

Stargazers

Stargazers @Goqi/Banli

Forkers

Forkers @Goqi/Banli

Stargazers over time